Career 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006
All Rounds Final 1/2 1/4 First Second Third Fourth Pre-q Rubber 1 Rubber 2 Rubber 3 Rubber 4 Rubber 5 Robin Bronze Q3 N/A Q2 Q1 ER Q4 CR QF Q5 N/A
All Courts Acrylic N/A Clay Grass Carpet Hard I.hard
All Tour M25 Hua Hin M15 Ipoh Perak Manama Challenger Millennium Estoril Open - Estoril M25 Pozzuoli Curitiba Challenger Valencia Challenger Campinas Challenger M15 Luan Astana Challenger M15 Luan Wuxi Challenger M15 Luan Oeiras 5 Challenger M15 Kashiwa Porto Challenger Zhangjiagang Challenger Shanghai Challenger Spain F32 Portugal F4 Portugal F5 Portugal F6 Spain F7 Portugal F1 Portugal F3 Spain F17 Spain F18 Sweden F5 Mexico F1 Costa Rica F1 Colombia F2 Usa F7 Czech Rep. F2 Spain F18 Usa F14 Usa F15 Usa F5 Portugal F3 Switzerland F3 Spain F11 Usa F15 Brazil F22 Brazil F31 Brazil F32 Brazil F33 Brazil F1 Colombia F1 Colombia F2 USA F7 Canada F3 Canada F4 Brazil F26 Canada F6 Canada F7 Brazil F33 USA F5 USA F6 Canada F1 Canada F2 Italy F7 Italy F8 Canada F4 Canada F6 Canada F9 Mexico F12 Mexico F13 Mexico F14 USA F1 USA F2 Canada F2 Greece F6 Greece F7 Greece F8 Canada F3 Canada F4 USA F3 Canada F5 Canada F6 Canada F9 Canada F1 Canada F2 Canada F3 Canada F4 Canada F5 Canada F7 Canada F8 Canada F1 Canada F11 France F21 France F22 Portugal F2 USA F26 France F1 Mexico F10 Mexico F11 Usa F8 France F2 USA F1 USA F2 USA F3 France F3 Usa F18 Tunisia F5 Tunisia F6 Italy F5 Canada F1 Canada F2 Canada F3 Czech Rep. F3 Usa F13 Canada F2 Great Britain F5 Greece F5 France F12 France F13 France F11 Canada F7 Canada F8 Canada F9 Canada F10 Canada F11 France F21 France F23 Great Britain F10 Great Britain F11 USA F8 Canada F2 France F22 China F8 Canada F3 Canada F4 Canada F6 Canada F7 Canada F8 Canada F9 USA F3 (Plantation) USA F4 (Sunrise) USA F5 (Weston) USA F6 (Palm Coast) USA F7 (Orlando) USA F8 (Indian Harbour Beach) Canada F1 (Gatineau) Egypt F12 (Sharm El Sheikh) Egypt F13 (Sharm El Sheikh) Egypt F14 (Sharm El Sheikh) Egypt F15 (Sharm El Sheikh) Israel F6 (Akko) Israel F7 (Herzlia) Israel F8 (Netanya) USA F17 (Winston-Salem) Canada F2 (Sherbrooke) USA F19 (Winston-Salem) Canada F1 Canada F3 (Kelowna) Canada F4 (Saskatoon) Canada F5 (Calgary) Canada F2 (Sherbrooke) M15 Sintra M15 Sintra M25 Vale Do Lobo M15 Sharm El Sheikh M15 Sharm El Sheikh M25 Most M25 Wroclaw M15 Poprad M15 Gdynia M25 Poznan M25 Pretoria M25 Nur-Sultan M25 Meitar M25 Afula M25 Villena M25 Vale do Lobo M25 Santo Domingo M15 Monastir M25 Prague M15 Monastir M25 Nottingham M25 Nottingham M25 Monastir M25 Marburg M15 Monastir M25 Monastir M25 Quinta Do Lago M25 Nur-Sultan M25 Vale do Lobo M15 Sharm El Sheikh M25 Netanya M25 Astana M25 Cancun M25 Santo Domingo M15 Monastir M15 Monastir M15 Hua Hin M15 Esch/Alzette M15 Lodz M25 Nottingham M25 Johannesburg / Markspark M25 Johannesburg / Ellispark M15 Sharm ElSheikh M25 Weston M15 Monastir M25 Idanha-a-Nova M15 Monastir M15 Helsinki M25 Aldershot M25 Roehampton M25 Nottingham M25 Sunderland M25 Glasgow M25 Grodzisk Mazowiecki M25 Afula M25 Jerusalem M15 Heraklion M25 Heraklion M25 Heraklion M25 Loughborough M25 Sunderland M25 Bath M25 Sheffield M25 Portimao M25 Loule M15 Monastir M25 Bodrum M25 Reggio Emilia M25 Rome M15 Monastir M25 Netanya Naples Challenger - Naples San Remo Tennis Cup - San Remo M25 Wichita M25 Quinta Do Lago Challenger Banque Nationale - Granby Moncton Men's Challenger - Moncton M25 Tulsa M15 Heraklion M15 Heraklion M15 Monastir M15 Monastir M15 Dublin Semgroup Challenger - Tulsa M25 Nottingham M25 Astana M15 Forli M15 Bologna Ford Tennis Championships - Louisville M15 Sharm ElSheikh M15 Sharm ElSheikh National Bank Men's Rimouski Challenger - Rimouski JSM Challenger of Champaign - Urbana Sao Paulo Challenger Salinas Challenger M15 Szabolcsveresmart M15 Szabolcsveresmart M25 Vale do Lobo M15 Sharm ElSheikh M15 Nonthaburi M15 Sharm ElSheikh M15 Nonthaburi M25 Faro M25 Sunderland M15 Tsukuba M25 Glasgow M25 Reus M25 Vila Real de Santo Antonio M15 Sharm ElSheikh M25 Vila Real de Santo Antonio M15 Sharm ElSheikh M15 Sharm ElSheikh M25 Quinta do Lago M25 Mataro M25 Porto M15 Monastir M15 Monastir Campos do Jordao Challenger Belo Horizonte Challenger Sao Paulo Challenger Sao Paulo Challenger Le Gosier Challenger Granby Challenger Campos do Jordao Challenger Campinas Challenger Belo Horizonte Challenger M15 Hillcrest Sao Jose Do Rio Preto Challenger M25 Figueira da Foz M25 Hillcrest Montevideo Challenger M15 Hillcrest M25 Porto M15 Singapore Rimouski Challenger M15 Singapore Le Gosier Challenger Dallas Challenger Blumenau Challenger M25 Tamworth M25 Tamworth M25 Perth Santos Challenger M25 Perth Sao Paulo Challenger Bordeaux Challenger Caltanissetta Challenger Kosice Challenger Marburg Challenger Arad Challenger Timisoara Challenger Granby Challenger Tampere Challenger Vancouver Challenger St. Remy Challenger Belem Challenger San Juan Challenger Rio De Janeiro Challenger Porto Alegre Challenger ATP Challenger Tour Finals Bucaramanga Challenger Itajai Challenger Santos Challenger Bordeaux Challenger Porto Alegre Challenger Sao Paulo Challenger Tiburon Challenger Buenos Aires Challenger Charlottesville Challenger Montevideo Challenger Bucaramanga Challenger Barranquilla Challenger Sao Paulo Challenger Santos Challenger Vercelli Challenger Aix En Provence Challenger Karshi Challenger Bancolombia Open - Bogota Abierto Internacional de Salinas 'Dario Expreso' - Salinas Blois Challenger Roma Open Challenger - Rome III Challenger Isla de Gran Canaria Ciudad de Telde - Telde Nielsen USTA Pro Tennis Championship - Winnetka Oldum Brown Vancouver Open - Vancouver Levene Gouldin & Thompson Tennis Challenger - Binghamton Granby Challenger GHI Bronx Tennis Classic - Bronx Tampere Challenger Sacramento Challenger - Sacramento Porto Alegre Challenger Charlottesville Challenger Abierto Internacional Varonil Ciudad de Cancun - Cancun Bucaramanga Challenger Santo Domingo Challenger Irving Challenger Drummondville Challenger St. Brieuc Challenger Sarasota Challenger Aix En Provence Challenger Bordeaux Challenger Mestre Challenger Caltanissetta Challenger Blois Challenger Aptos Challenger Vancouver Challenger Como Challenger Meknes Challenger Porto Alegre Challenger Sao Paulo Challenger Santiago Challenger Lima Challenger Guayaquil Challenger Bangkok Challenger Manila Challenger Rio De Janeiro Challenger Launceston Challenger Jonkoping Challenger Drummondville Challenger Kazan Challenger Barletta Challenger Nanjing Challenger Turin Challenger Busan Challenger Seoul Challenger Bangkok Challenger Vicenza Challenger Milan Challenger Lexington Challenger Granby Challenger Lima Challenger Montevideo Challenger Brasilia Challenger Salvador Challenger Tunis Challenger Asuncion Challenger Buenos Aires Challenger Santiago Challenger Dallas Challenger Bucaramanga Challenger Drummondville Challenger Barletta Challenger Buenos Aires Challenger Recife Challenger Bucaramanga Challenger Todi Challenger Granby Challenger Florianopolis Challenger Floridablanca Challenger Santo Domingo Challenger Como Challenger Columbus Challenger Campinas Challenger Buenos Aires Challenger Prague Challenger Bordeaux Challenger Charlottesville Challenger Guayaquil Challenger Montevideo Challenger Knoxville Challenger Champaign Challenger Santiago Challenger San Francisco Challenger Drummondville Challenger Barletta Challenger Guadalajara Challenger Leon Challenger Seoul Challenger Braga Challenger Gimcheon Challenger Busan Challenger Ilkley Challenger Campinas Challenger Gatineau Challenger Granby Challenger Sao Leopoldo Challenger Shanghai Challenger Kaohsiung Challenger Sao Paulo Challenger Campinas Challenger Calgary Challenger Rimouski Challenger 2007 Knoxville Challenger - Knoxville Liuzhou Challenger Bangalore Challenger Sao Paulo Challenger Buenos Aires Challenger Orlando Challenger Columbus Challenger Newport Beach Challenger Cleveland Challenger Dallas Challenger Recife Challenger Braunschweig Challenger Braga Challenger Jerusalem Challenger Granby Challenger Sao Leopoldo Challenger Lexington Challenger Vancouver Challenger Tampere Challenger Tiburon Challenger Buenos Aires Challenger Campinas Challenger Campinas Challenger Sao Jose Do Rio Preto Challenger Challenger Britania Zavaleta - Puebla Forli Challenger Milan Challenger Porto Challenger Guayaquil Challenger Bogota Challenger Champaign Challenger Guayaquil Challenger Sao Paulo Challenger San Marino Challenger Heilbronn Challenger Verona Challenger Rimouski Challenger Panama City Challenger Itajai Challenger Oeiras 1 Challenger Madrid Challenger Samarkand Challenger Lisbon Challenger Furth Challenger Marburg Challenger Braunschweig Challenger Montevideo Challenger Lexington Challenger Waco Challenger Genova Challenger Campinas Challenger Prague 2 Challenger Knoxville Challenger Champaign Challenger Seville Challenger Guangzhou Challenger Dallas Challenger Prague Challenger Le Gosier Challenger Sao Paulo Challenger Oeiras 1 Challenger Oeiras 2 Challenger Savannah Challenger Vercelli Challenger Nottingham Challenger Glasgow Challenger Tenerife 3 Challenger Braunschweig Challenger Tyler Challenger Zagreb Challenger Poznan Challenger Astana Challenger Grodzisk Mazowiecki Challenger Porto 2 Challenger Campinas Challenger Seville Challenger Corrientes Challenger Sibiu Challenger Buenos Aires Challenger Lisbon Challenger Montevideo Challenger Braga Challenger Bangkok Challenger Bucaramanga Challenger Montevideo Challenger Lima 2 Challenger Napoli Challenger Montevideo Challenger Anning Challenger Bordeaux Challenger Mestre Challenger Oeiras 2 Challenger Oeiras 3 Challenger Tenerife 1 Challenger Braunschweig Challenger Girona Challenger Sacramento Challenger Guayaquil Challenger Dallas Challenger Bordeaux Challenger Lima Challenger Rennes Challenger Dallas Challenger Santiago Challenger Tunis Challenger Surbiton Challenger Winnipeg Challenger Vancouver Challenger Como Challenger Zhangjiagang Challenger Granby Challenger Lima Challenger Montevideo Challenger Yokohama Challenger Zhuhai Challenger Francavilla Challenger Little Rock Challenger Sopot Challenger Oeiras 1 Challenger Poznan Challenger Orleans Challenger Monterrey Challenger Puerto Vallarta Challenger Prostejov Challenger Las Franquesas del Valles Challenger Girona Challenger Barletta Challenger Shanghai Challenger Roseto Degli Abruzzi Challenger Granby Challenger Ostrava Challenger Gatineau Challenger Lisbon Challenger Split Challenger Buenos Aires Challenger Playford Challenger Francavilla Challenger Pozoblanco Challenger Porto Challenger Francavilla Challenger Rome Challenger Grodzisk Mazowiecki Challenger Zhuhai Challenger Lisbon Challenger Mallorca Challenger Zhangjiagang Challenger Milan Challenger Braunschweig Challenger Winnipeg Challenger Braga Challenger Scheveningen Challenger Gatineau Challenger Santa Fe 2 Challenger Vancouver Challenger Seville Challenger Sydney Challenger Montevideo Challenger Tiburon Challenger Rome Challenger Stockton Challenger Newport Beach Challenger Pau Challenger Le Gosier Challenger Tenerife 2 Challenger Hamburg Challenger Murcia Challenger Girona Challenger Nottingham Challenger Madrid Challenger Oeiras 3 Challenger Francavilla Challenger Genova Challenger Oeiras 4 Challenger Biella Challenger Little Rock Challenger Santo Domingo Challenger Lyon Challenger Shenzhen Challenger Guayaquil Challenger Brasov Challenger Chennai Challenger Bangkok Challenger Porto Challenger Shenzhen Challenger Zhangjiagang Challenger Todi Challenger Barletta Challenger Sarasota Challenger Seoul Challenger Busan Challenger Lisbon Challenger Gwangju Challenger Columbus Challenger Parma Challenger Milan Challenger Nur-Sultan Challenger Guayaquil Challenger Vancouver Challenger New Haven Challenger Cary Challenger Columbus Challenger Oeiras 1 Challenger Santo Domingo Challenger Fairfield Challenger Las Vegas Challenger Charlottesville Challenger Knoxville Challenger Champaign Challenger Ann Arbor Challenger Bangkok Challenger Bangkok Challenger Burnie Challenger Launceston Challenger Oeiras 4 Challenger Drummondville Challenger Calgary Challenger Estoril Challenger Guangzhou Challenger Lisbon Challenger Sao Paulo Challenger Maia Challenger Pozoblanco Challenger Oeiras 2 Challenger Oeiras 3 Challenger Oeiras 4 Challenger Biella 7 Challenger Amersfoort Challenger Tampere Challenger Bangkok Challenger Forli 2 Challenger Maia 1 Challenger Maia 2 Challenger Bendigo Challenger Cherbourg Challenger Forli 4 Challenger Forli 5 Challenger Roseto Degli Abruzzi 2 Challenger Zadar Challenger Oeiras 2 Challenger Aix En Provence Challenger Bordeaux Challenger Forli 6 Challenger Poznan Challenger Perugia Challenger Bratislava Challenger Montechiarugolo - Parma Challenger Milan Challenger Troyes Challenger Braunschweig Challenger Lima Challenger Estoril Open - Estoril Cassis Challenger Rennes Challenger Braga Challenger Alicante Challenger Campinas Challenger Rio De Janeiro Challenger Las Vegas Challenger Estoril Open - Estoril Sao Leopoldo Challenger Canberra Challenger Estoril Open - Estoril Pilot Pen Tennis - New Haven Estoril Open - Estoril Estoril Open - Estoril Campbells Hall of Fame Tennis Championships - Newport VTR Open - Vina del Mar Copa Claro - Buenos Aires Estoril Open - Estoril VTR Open - Vina del Mar Brasil Open - Sao Paulo Copa Claro - Buenos Aires Delray Beach International Tennis Championships - Delray Beach Portugal Open - Oeiras U.S. National Indoor Tennis Championships - Memphis Delray Beach Open - Delray Beach Grand Prix Hassan II - Casablanca Portugal Open - Oeiras Mercedes Cup - Stuttgart Bet-at-home Open - Hamburg Citi Open - Washington Swiss Indoors Basel - Basel Qatar ExxonMobil Open - Doha Abierto Mexicano Telcel - Acapulco US Men's Clay Court Championship - Houston BB&T Atlanta Open - Atlanta Millennium Estoril Open - Estoril Argentina Open - Buenos Aires Rio Open - Rio de Janeiro Brasil Open - Sao Paulo Millennium Estoril Open - Estoril Open Parc - Lyon Generali Open - Kitzbuhel Brisbane International - Brisbane Argentina Open - Buenos Aires Rio Open - Rio de Janeiro Abierto Mexicano Telcel - Acapulco Brasil Open - Sao Paulo Millennium Estoril Open - Estoril Abierto Mexicano - Los Cabos Shenzhen Open - Shenzhen Gerry Weber Open - Halle Millennium Estoril Open - Estoril Winston-Salem Open - Winston-Salem Estoril Open - Estoril Open de Nice Cote d'Azur - Nice SkiStar Swedish Open - Bastad Konzum Croatia Open - Umag St. Petersburg Open - St. Petersburg Rakuten Japan Open - Tokyo If Stockholm Open - Stockholm Apia International - Sydney Argentina Open - Buenos Aires Rio Open - Rio de Janeiro Brasil Open - Sao Paulo Brasil Open - Sao Paulo Erste Bank Open - Vienna Aircel Chennai Open - Chennai Millennium Estoril Open - Estoril Citi Open - Washington Delray Beach International Tennis Championships - Delray Beach Brasil Open - Sao Paulo Bet-at-home Open - Hamburg Qatar ExxonMobil Open - Doha Millennium Estoril Open - Estoril Winston-Salem Open - Winston-Salem Shenzhen Open - Shenzhen Sony Ericsson Open - Miami BNP Paribas Open - Indian Wells Sony Ericsson Open - Miami Rogers Cup - Toronto BNP Paribas Open - Indian Wells Mutua Madrid Open - Madrid Rogers Cup - Montreal Rogers Cup - Toronto BNP Paribas Open - Indian Wells Rogers Cup - Montreal Western & Southern Open - Cincinnati BNP Paribas Open - Indian Wells Miami Open - Miami Rogers Cup - Montreal Miami Open - Miami Rogers Cup - Toronto Coupe Rogers - Montreal Sony Ericsson Open - Miami Sony Open Tennis - Miami U.S. Open - New York French Open - Paris Wimbledon - London U.S. Open - New York M25 Cairns French Open - Paris Wimbledon - London Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne M25 Nottingham Davis Cup, Group 1, 1R, GEO-POR 3-2 Davis Cup, Group 2, 2R, POR-TUN 4-1 Davis Cup, Group II, 2R, POR-LTU 5-0 Davis Cup, Group II, 3R, MDA-POR 2-3 Davis Cup, Group I, 1R, SLO-POR 3-2 Davis Cup, Group I, PO, RUS-POR 4-1 Davis Cup, World Group, QF, BEL-CAN 5-0 Davis Cup, Group II, 3R, POR-BLR 3-2 Davis Cup, Group I, 1R, POR-AUT 1-4 Davis Cup, Group I, PO, POR-SLO 5-0 Davis Cup, Group I, 1R, POR-ISR 5-0 Davis Cup, Group I, 2R, POR-UKR 4-1 Davis Cup, Group I, 2R, SWE-POR 3-2 Davis Cup, Group I, 1R, ROU-POR 3-1 Davis Cup, Group I, PO, POR-POL 4-0 Australian Open (juniors) U.S. Open (juniors) Wimbledon (juniors) Australian Open (juniors) French Open (juniors) Wimbledon (juniors) U.S. Open (juniors) All Lower level tournaments French Open (juniors) Wimbledon (juniors) U.S. Open (juniors) M25 Herzlia Wimbledon (juniors) Davis Cup, Group I, PO, SVK-POR 3-1 U.S. Open (juniors) French Open (juniors) Australian Open (juniors) Olympics - Rio de Janeiro Zhuhai Open - Zhuhai Lima 2 Challenger M25 Nottingham Milan Challenger